Local Area Networks (LAN) such as Ethernet or token-ring networks, are generally interconnected through hubs. The hub is a system made of LAN adapters that communicate together through a switch card. The switch card is mainly composed of input ports, output ports and a shared memory switch engine.
The data packets received by the input ports are stored into the shared memory at address locations determined by queues containing the packet destination addresses. The packets are de-queued to be transmitted to the destination output ports.
The shared memory having a limited size, a flow control mechanism is generally implemented to control the data packet transfer between each adapter card and the switch engine. Flow control mechanisms are often based on thresholds. The shared memory has a maximum threshold and a minimum threshold. When the number of data packets stored into the shared memory reaches the max. threshold, the switch engine asks the adapter card to stop sending data packets. When the number of data packets stored into the shared memory reaches the min threshold, the switch engine asks the adapter card to resume the transmission of data packets. Drawback of such mechanism is that it is a binary control which operates as ‘do transmit’ or ‘do not transmit’, thereby leading to interrupt and resume the data flow.
Therefore, there is a need to have a flow control system wherein the transmission from the adapter cards is never stopped. The present invention offers such solution.